home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / t_os / qa / aoi_lib2.h < prev    next >
Text File  |  1993-11-30  |  23KB  |  1,022 lines

  1. /*
  2. ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  3. ┃ ライブラリ用ヘッダファイル       /////  Tab Size : 4  /////  ┃
  4. ┃                                  /////  Margin : 100  /////  ┃
  5. ┃ aoi_lib2.h   v1.0 L20                                        ┃
  6. ┃                                                              ┃
  7. ┃ (C)K.Konishi 16-Aug-93                                       ┃
  8. ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
  9. */
  10.  
  11.  
  12. #if !defined(___AOI_lib)
  13.     #define    ___AOI_lib
  14.     #define    ___AOI_libDate    16-08-92
  15.     #define    ___AOI_libVer    v1.0_L20
  16.  
  17. typedef struct AOIstringData {    /* AOIstringのデータ格納用の構造体 */
  18.     short    ax, ay,                    /* ANK 文字 大きさ */
  19.             sx, sy;                    /* SJIS文字 大きさ */
  20.     int        sc,                        /* 文字の色 */
  21.             ss;                        /* 文字のスタイル */
  22. }AOIstringData;
  23.  
  24. typedef struct AOIbuttonData {    /* AOIbuttonのデータ格納用の構造体 */
  25.     short     x,  y,                    /* ボタン座標 */
  26.             lx, ly;                    /* ボタン大きさ */
  27. }AOIbuttonData;
  28.  
  29. #ifdef    LIB
  30. char    para[64];
  31. char    work[EgbWorkSize];
  32. char    mwork[MosWorkSize];
  33. char     pat_work[258];
  34.  
  35. #define    BUTTON    100
  36.  
  37.  
  38.  
  39. #endif
  40.  
  41.  
  42.  
  43. #ifdef    MAIN
  44. #include <EGB.h>
  45. #include <MOS.h>
  46. extern    char    para[64];
  47. extern    char    work[EgbWorkSize];
  48. extern    char    mwork[MosWorkSize];
  49. extern    char     pat_work[258];
  50.  
  51. #define    BUTTON    100
  52.  
  53.  
  54. #define    MDCL1     1    /* 色の名前 */
  55. #define    MDCL2     2
  56. #define    MDCL3     3
  57. #define    MDCL4     4
  58. #define    MDCL5     5
  59. #define    MDCL6     6
  60. #define    MDCL7     7
  61.  
  62. #define    BLACK     8
  63. #define    BLUE     9
  64. #define    RED        10
  65. #define    PURPLE    11
  66. #define    GREEN    12
  67. #define    SKYBLUE    13
  68. #define    YELLOW    14
  69. #define    WHITE    15
  70.  
  71. enum {OFF, ON};
  72.  
  73. #endif
  74.  
  75. int AOIpset(short x, short y, short c);
  76.  
  77. int AOIstring(short x, short y, AOIstringData *Data, char *tx);
  78.  
  79. int AOIstrSetup(short zsx, short zsy, short zax, short zay, short sf, short sc);
  80.  
  81. int AOIstrSjis(short x, short y, char *tx);
  82.  
  83. int AOIanyChar(short x, short y, short fx, short fy, char *data);
  84.  
  85. int AOIline(short x0, short y0, short x1, short y1, short c);
  86.  
  87. int AOIbox(short x0, short y0, short x1, short y1, short c);
  88.  
  89. int AOIboxFull(short x0, short y0, short x1, short y1, int c);
  90.  
  91. int AOIwinBase(short x, short y, short lx, short ly, short sd);
  92.  
  93. int AOIbuttonBase(short x, short y, short lx, short ly);
  94.  
  95. int AOIsetPalette(int cn, int cg, int cr, int cb);
  96.  
  97. int AOIsetPalette256(int cn, int cg, int cr, int cb);
  98.  
  99. int AOIsetStandardPalette(void);
  100.  
  101. int AOIcolorIGRB(int g, int r, int b);
  102.  
  103. short AOIbin2short(char *bin);
  104.  
  105. long AOIbin2long(char *bin);
  106.  
  107. void AOIsetButton(AOIbuttonData *Data, short x, short y, short lx, short ly);
  108.  
  109. int AOIbutton(short sx, short sy, int mx, int my, AOIbuttonData *Data);
  110.  
  111. void AOIfigureDraw(short sx, short sy, short figure);
  112.  
  113. void _AOIfigureDrawSet(short *fig, short *a);
  114.  
  115. void AOIfigureDraw2(short sx, short sy, int figure);
  116.  
  117. short _AOIrandom(short max);    /* 0~99までの特殊用途乱数発生 */
  118.  
  119. long AOIrandom(long max);        /* 0~999999までの乱数発生 */
  120.  
  121. int AOIbuttonLamp(short sx, short sy, AOIbuttonData *Data);
  122.  
  123. int AOIslantingBox(short x0, short y0, short x1, short y1, short lx, short cl);
  124.  
  125. int AOIslantingBoxFull(short x0, short y0, short x1, short y1, short lx, short cl);
  126.  
  127. int AOIpadCheck(int *status);
  128.  
  129. int AOIpadCheck2(int *status, int a[]);
  130.  
  131. void ank2sjis(char string[], char str[]);
  132.  
  133. void AOIstrFJ2(FILE *fp, short fs, short sx, short sy, char st[], short gap);
  134.  
  135. void AOIstring_FJ2(FILE *fp, short fs, short sx, short sy, char st[], short sc, short gap);
  136.  
  137. void AOIstrFJ2Zoom(FILE *fp, short fs, short sx, short sy, char st[], short sc, short gap, short zx, short zy);
  138.  
  139. short _AOIsystem12FontSetup(char fnt12File[]);
  140.  
  141. void AOIsystem16Font(short x, short y, short c, char *str);
  142.  
  143. void AOIsystem12Font(short x, short y, short c, char *str);
  144.  
  145. int AOIgetGraph(char *buf, short x0, short y0, short x1, short y1);    /* 画像データ画面の読み込み */
  146.  
  147. int AOIgetGraphZoom(char *buf, short x0, short y0, short x1, short y1, short xs, short ys);
  148.     /* 画像データ画面の読み込み */
  149.  
  150. int AOIputGraph(char *buf, short x0, short y0, short x1, short y1);    /*    画像データ画面の書き込み */
  151.  
  152. int AOIputGraphZoom(char *buf, short x0, short y0, short x1, short y1, short xs, short ys);
  153.     /*    画像データ画面の書き込み */
  154.  
  155. void AOIwindowMove(char *dispTmp, short *sx, short *sy, short lx, short ly);    /*    ウインドゥ移動 */
  156.  
  157. int AOItiff(int sx, int sy, char filename[100]);
  158.  
  159. void AOIwide17(void);        /* WIDE display set */
  160.  
  161. void AOIwide3(void);
  162.  
  163. short AOItownsName(void);    /*    TOWNSの機種判別 */
  164.  
  165. #endif
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172. /*
  173. ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  174. ┃  葵関数群        AOI_LIB2    v1.0 L20    マニュアル                    ┃
  175. ┃                                                                        ┃
  176. ┃    (C)K.Konishi  16-Aug-93                                             ┃
  177. ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
  178.  
  179.     1 葵関数群について
  180.  
  181.            葵関数群は、QA を製作する際に使った HighC 用簡易関数群です。
  182.         C言語を始めたばかりの時の関数群もそのまま残っているので、かなり、
  183.         目茶苦茶な物もあります。
  184.  
  185.  
  186.         1.1 葵関数群使用上の注意
  187.  
  188.               葵関数群によって、生じたあらゆる不都合について、私は一切
  189.             責任を負いません。一部、バグも野放しになっている場合もあります。
  190.  
  191.  
  192.         1.2 葵関数群の使い方
  193.  
  194.               以下、葵関数群を使うソースプログラムを TEST.C と呼びます。
  195.             ソースプログラム TEST.C の適当な所に、
  196.  
  197.                 #define    MAIN
  198.                 #include <aoi_lib2.h>
  199.  
  200.             と記述して下さい。
  201.               MAIN は、このソースプログラム TEST.C 内に main() があることを
  202.             示しています。
  203.  
  204.                 [参考]葵関数群は、以下が定義されています。
  205.  
  206.                         #define    ___AOI_lib
  207.  
  208.               後、aoi_lib2.obj をリンクしてください。例えば、TLINK なら、
  209.  
  210.                   run386 tlinkp.exp TEST.OBJ @link01.lnk
  211.  
  212.             です。link01.lnk 内のパスは各自適当に指定してください。
  213.  
  214.  
  215.  
  216.     2 葵関数群 リファレンス
  217.  
  218.         ■ AOIpset            点描画
  219.  
  220.             int AOIpset(short x, short y, short c);
  221.                 //    0:正常終了
  222.             short    x;        //    開始X座標
  223.             short    y;        //    開始Y座標
  224.             short    c;        //    描画色
  225.  
  226.             例
  227.                 int     ret;
  228.  
  229.                 ret = AOIpset(320, 200, 15);
  230.                 //    座標(320, 200) に色番号15で点を描画します。
  231.  
  232.  
  233.  
  234.  
  235.  
  236.         ■ AOIstring        文字列描画 (旧)
  237.  
  238.             int AOIstring(short x, short y, AOIstringData *Data, char *tx)
  239.                 //    0:正常終了
  240.             short            x;        //    開始X座標
  241.             short            y;        //    開始Y座標
  242.             AOIstringData    *Data;    //    文字列装飾データ
  243.             char            *tx;    //    描画文字列
  244.  
  245.             例
  246.                 int     ret;
  247.                 AOIstringData    asD;    // AOIstrData型の変数宣言
  248.  
  249.                 asD.sx = 32;    //    全角のX方向大きさ
  250.                 asD.sy = 32;    //    全角のY方向大きさ
  251.                 asD.ax = 16;    //    半角のX方向大きさ
  252.                 asD.ay = 32;    //    半角のY方向大きさ
  253.                 asD.sc = BLACK;    //    描画色
  254.                 asD.ss = 0x00;    //    スタイル(HighC マニュアル EGB_fontStyle()参照)
  255.  
  256.                 ret = AOIstring(320, 200, &asD, "文字列ABCABC");
  257.                 //    座標(320, 200) に文字列を描画します。
  258.  
  259.             注意
  260.                 AOIstrSjis() の旧ヴァージョン
  261.  
  262.  
  263.  
  264.  
  265.  
  266.         ■ AOIstrSetup        AOIstrSjis() に対する文字列装飾設定
  267.  
  268.             int AOIstrSetup(zsx, zsy, zax, zay, sf, sc);
  269.                 //    0:正常終了
  270.             short    zsx;        //    全角のX方向大きさ
  271.             short    zsy;        //    全角のY方向大きさ
  272.             short    zax;        //    半角のX方向大きさ
  273.             short    zay;        //    半角のY方向大きさ
  274.             short    sf;            //    スタイル(HighC マニュアル EGB_fontStyle()参照)
  275.             short    sc;            //    描画色
  276.  
  277.         例
  278.             AOIstrSjis() の例を参照
  279.  
  280.  
  281.  
  282.  
  283.  
  284.         ■ AOIstrSjis        文字列描画 (新)
  285.  
  286.             int AOIstrSjis(short x, short y, char *tx)
  287.                 //    0:正常終了
  288.             short    x;            //    開始X座標
  289.             short    y;            //    開始Y座標
  290.             char    *tx;        //    描画文字列
  291.  
  292.             例
  293.                 int     ret1, ret2;
  294.  
  295.                 ret1 = AOIstrSetup(32, 32, 16, 32, 0x00, BLACK);
  296.                 ret2 = AOIstrSjis(320, 200, "文字列ABCABC");
  297.                 //    座標(320, 200) に文字列を描画します。
  298.  
  299.             注意
  300.                 AOIstrSjis() を呼び出す前に AOIstrSetup() で各種設定を
  301.                 行ってください。
  302.  
  303.  
  304.  
  305.  
  306.  
  307.         ■ AOIanyChar        座標設定も行う EGB_anyChar()
  308.  
  309.             int AOIanyChar(short x, short y, short fx, short fy, char *data);
  310.                 //    0:正常終了
  311.             short    x;            //    開始X座標
  312.             short    y;            //    開始Y座標
  313.             short    fx;            //    データの横サイズ(8ドット単位)
  314.             short    fy;            //    データの縦サイズ
  315.             char    *data;        //    データのアドレス
  316.  
  317.             例
  318.                 int        ret;
  319.                 char    data[] = {
  320.                             0x1c, 0x00, 0x3e, 0x00, 0x63, 0x00, 0x41, 0x00,
  321.                                0xc1, 0x80, 0xff, 0x80, 0xc1, 0x80, 0xc1, 0x80
  322.                            };
  323.  
  324.                 ret = AOIanyChar(320, 200, 8, 16, data);
  325.                 //    座標(320, 200) にdataの指すデータを描画します。
  326.  
  327.  
  328.  
  329.  
  330.  
  331.         ■ AOIline            線描画
  332.  
  333.             int AOIline(short x0, short y0, short x1, short y1, short c);
  334.                 //    0:正常終了
  335.             short    x0;            //    開始X座標
  336.             short    y0;            //    開始Y座標
  337.             short    x1;            //    終了X座標
  338.             short    y1;            //    終了Y座標
  339.             short    c;            //    描画色
  340.  
  341.             例
  342.                 int        ret;
  343.  
  344.                 ret = AOIline(320, 200, 600, 450, 15);
  345.                 // 座標(320, 200)から座標(320, 200)へ色番号15で線を描画します
  346.  
  347.  
  348.  
  349.  
  350.  
  351.         ■ AOIconnectLeft    ┌─ のように線を描画します
  352.  
  353.             int AOIconnectLeft(x0, y0, x1, y1, c);
  354.                 //    0:正常終了
  355.             short    x0;            //    開始X座標
  356.             short    y0;            //    開始Y座標
  357.             short    x1;            //    終了X座標
  358.             short    y1;            //    終了Y座標
  359.             short    c;            //    描画色
  360.  
  361.             例
  362.                 int        ret;
  363.  
  364.                 ret = AOIconnectLeft(320, 200, 600, 450, 15);
  365.                 // 座標(320, 450)~座標(320, 200)~座標(600, 200)の順に
  366.                     色番号15で線を描画します。
  367.  
  368.  
  369.  
  370.  
  371.  
  372.         ■ AOIconnectRight    ─┘ のように線を描画します
  373.  
  374.             int AOIconnectRight(x0, y0, x1, y1, c);
  375.                 //    0:正常終了
  376.             short    x0;            //    開始X座標
  377.             short    y0;            //    開始Y座標
  378.             short    x1;            //    終了X座標
  379.             short    y1;            //    終了Y座標
  380.             short    c;            //    描画色
  381.  
  382.             例
  383.                 int        ret;
  384.  
  385.                 ret = AOIconnectRight(320, 200, 600, 450, 15);
  386.                 // 座標(320, 450)~座標(600, 450)~座標(600, 200)の順に
  387.                     色番号15で線を描画します。
  388.  
  389.  
  390.  
  391.  
  392.  
  393.         ■ AOIbox            矩形描画
  394.  
  395.             int AOIbox(short x0, short y0, short x1, short y1, short c);
  396.                 //    0:正常終了
  397.             short    x0;            //    開始X座標
  398.             short    y0;            //    開始Y座標
  399.             short    x1;            //    終了X座標
  400.             short    y1;            //    終了Y座標
  401.             short    c;            //    描画色
  402.  
  403.             例
  404.                 int        ret;
  405.  
  406.                 ret = AOIbox(320, 200, 600, 450, 15);
  407.                 // 座標(320, 200)から(600, 450)へ色番号15で矩形を描画します。
  408.  
  409.  
  410.  
  411.  
  412.  
  413.         ■ AOIboxFull        塗りつぶし矩形描画
  414.  
  415.             int AOIboxFull(short x0, short y0, short x1, short y1, short c);
  416.                 //    0:正常終了
  417.             short    x0;            //    開始X座標
  418.             short    y0;            //    開始Y座標
  419.             short    x1;            //    終了X座標
  420.             short    y1;            //    終了Y座標
  421.             short    c;            //    描画色
  422.  
  423.             例
  424.                 int        ret;
  425.  
  426.                 ret = AOIboxFull(320, 200, 600, 450, 15);
  427.                 // 座標(320, 200)から座標(600, 450)へ色番号15で
  428.                     塗りつぶし矩形を描画します。
  429.  
  430.  
  431.  
  432.  
  433.  
  434.         ■ AOIwinBase        ウィンドウの下地描画
  435.  
  436.             int AOIwinBase(short x, short y, short lx, short ly, short sd);
  437.                 //    0:正常終了
  438.             short    x;            //    開始X座標
  439.             short    y;            //    開始Y座標
  440.             short    lx;            //    X方向大きさ
  441.             short    ly;            //    Y方向大きさ
  442.             short    sd;            //    影処理(1 : あり)
  443.  
  444.             例
  445.                 int        ret;
  446.  
  447.                 ret = AOIwinBase(320, 200, 100, 150, 1);
  448.                 // 座標(320, 200)から(100, 150)の大きさでウィンドウの下地描画
  449.                     します。影付き
  450.  
  451.  
  452.  
  453.  
  454.  
  455.         ■ AOIbuttonBase    ボタンの下地描画
  456.  
  457.             int AOIbuttonBase(short x, short y, short lx, short ly);
  458.                 //    0:正常終了
  459.             short    x;            //    開始X座標
  460.             short    y;            //    開始Y座標
  461.             short    lx;            //    X方向大きさ
  462.             short    ly;            //    Y方向大きさ
  463.  
  464.             例
  465.                 int        ret;
  466.  
  467.                 ret = AOIbuttonBase(320, 200, 100, 16);
  468.                 // 座標(320, 200)から(100,16)の大きさでボタンの下地描画します
  469.  
  470.  
  471.  
  472.  
  473.  
  474.         ■ AOIsetPalette    パレット設定(16色)
  475.  
  476.             int AOIsetPalette(int cn, int cg, int cr, int cb);
  477.                 //    0:正常終了
  478.             int        cn;            //    色識別番号
  479.             int        cg;            //    緑(16段階)
  480.             int        cr;            //    赤(16段階)
  481.             int        cb;            //    青(16段階)
  482.  
  483.             例
  484.                 int        ret;
  485.  
  486.                 ret = AOIsetPalette(14, 1, 2, 3);
  487.                     //    色識別番号14のパレットを(G, R, B) = (1, 2, 3)に設定。
  488.  
  489.  
  490.  
  491.  
  492.  
  493.         ■ AOIsetPalette256    パレット設定(256色)
  494.  
  495.             int AOIsetPalette256(int cn, int cg, int cr, int cb);
  496.                 //    0:正常終了
  497.             int        cn;            //    色識別番号
  498.             int        cg;            //    緑(256段階)
  499.             int        cr;            //    赤(256段階)
  500.             int        cb;            //    青(256段階)
  501.  
  502.             例
  503.                 int        ret;
  504.  
  505.                 ret = AOIsetPalette256(254, 10, 20, 30);
  506.                     //    色識別番号254のパレットを(G,R,B)=(10,20,30)に設定。
  507.  
  508.  
  509.  
  510.  
  511.  
  512.         ■ AOIcolorIGRB        RGBの値で描画色を設定
  513.  
  514.             int AOIcolorIGRB(int g, int r, int b);
  515.                 //    0:正常終了
  516.             int        g;            //    緑
  517.             int        r;            //    赤
  518.             int        b;            //    青
  519.  
  520.             例
  521.                 int        ret;
  522.  
  523.                 ret = AOIcolorIGRB(10, 20, 30);
  524.                     //    描画色を(G, R, B) = (10,20,30)に設定します。
  525.  
  526.  
  527.  
  528.  
  529.  
  530.         ■ AOIsetStandardPalette    16色モードの高輝度色のパレットを標準設定
  531.  
  532.             int AOIsetStandardPalette(void)
  533.                 //    0:正常終了
  534.  
  535.             例
  536.                 int        ret;
  537.  
  538.                 ret = AOIsetStandardPalette();
  539.                     //    16色モードの高輝度色のパレットを標準設定
  540.  
  541.  
  542.  
  543.  
  544.  
  545.         ■ AOIbin2short        2進数をshort型に変換し返します。
  546.  
  547.             short AOIbin2short(char *bin)
  548.                 //    2進数をshort型に変換し返します
  549.             char    *bin        //    2進数
  550.  
  551.             例
  552.                 short        ret;
  553.  
  554.                 ret = AOIbin2short("010101010");
  555.                     //    2進数 010101010 を short 型に変換し ret に格納します
  556.  
  557.  
  558.  
  559.  
  560.  
  561.         ■ AOIbin2long         2進数をlong 型に変換し返します。
  562.  
  563.             long  AOIbin2long (char *bin)
  564.                 //    2進数をlong 型に変換し返します
  565.             char    *bin        //    2進数
  566.  
  567.             例
  568.                 long     ret;
  569.  
  570.                 ret = AOIbin2long ("010101010");
  571.                     //    2進数 010101010 を long  型に変換し ret に格納します
  572.  
  573.  
  574.  
  575.  
  576.  
  577.         ■ AOIsetButton        指定範囲をボタンとして登録します
  578.  
  579.             void AOIsetButton(Data, x, y, lx, ly);
  580.                 //    戻りなし
  581.             AOIbuttonData    *Data;    //    ボタン属性
  582.             short            x;        //    開始X座標(0はウィンドウの開始X座標)
  583.             short            y;        //    開始Y座標(0はウィンドウの開始Y座標)
  584.             short            lx;        //    X方向大きさ
  585.             short            ly;        //    Y方向大きさ
  586.  
  587.             例
  588.                 AOIsetButton(&AbD[10], 10, 20, 100, 16);
  589.                 //    座標(10, 20)から(100, 16)の大きさの範囲をボタンとして
  590.                     登録番号10で登録します。
  591.  
  592.             注意
  593.                 AbD は aoi_lib2.h 内で予約済。
  594.                 登録番号は 1 から 100 まで。
  595.  
  596.  
  597.  
  598.  
  599.  
  600.         ■ AOIbutton        今、押されているボタンの登録番号を返します
  601.  
  602.             int AOIbutton(sx, sy, mx, my, Data);
  603.                 //    今、押されているボタンの登録番号を返します
  604.                     何も、押されていないときは -1 を返します
  605.             short            sx;        //    現在のウィンドウの開始X座標
  606.             short            sy;        //    現在のウィンドウの開始Y座標
  607.             int                mx;        //    現在のマウスカーソルのX座標
  608.             int                my;        //    現在のマウスカーソルのY座標
  609.             AOIbuttonData    *Data;    //    ボタン属性
  610.  
  611.             例
  612.                 int        button;
  613.                 int        ch;
  614.                 int        mx;
  615.                 int        my;
  616.  
  617.                 MOS_rdpos(&ch, &mx, &my);
  618.                 button = AOIbutton(400, 200, mx, my, AbD);
  619.                 //    ウィンドウ開始座標(400, 200), マウスカーソル座標(mx, my)
  620.                     の時、押されているボタンの登録番号を button に返します。
  621.  
  622.             注意
  623.                 AbD は aoi_lib2.h 内で予約済。
  624.                 登録番号は 1 から 100 までです。
  625.  
  626.  
  627.  
  628.  
  629.  
  630.         ■ AOIfigureDraw    2桁の数字をディジタル時計風12ドットで表示します
  631.  
  632.             void AOIfigureDraw(short sx, short sy, short figure);
  633.                 //    戻りなし
  634.             short    sx;            //    開始X座標
  635.             short    sy;            //    開始Y座標
  636.             short    figure;        //    表示数値
  637.  
  638.             例
  639.                 AOIfigureDraw(320, 200, 23);
  640.                 //    座標(320, 200)に数値 23 をディジタル12ドットで表示します
  641.  
  642.  
  643.  
  644.  
  645.  
  646.         ■ AOIfigureDraw2    2桁の数字をディジタル時計風25ドットで表示します
  647.  
  648.             void AOIfigureDraw(short sx, short sy, int figure);
  649.                 //    戻りなし
  650.             short    sx;            //    開始X座標
  651.             short    sy;            //    開始Y座標
  652.             int        figure;        //    表示数値
  653.  
  654.             例
  655.                 AOIfigureDraw2(320, 200, 23);
  656.                 //    座標(320, 200)に数値 23 をディジタル25ドットで表示します
  657.  
  658.  
  659.  
  660.  
  661.  
  662.         ■ AOIrandom        0~999999までの乱数発生
  663.  
  664.             long AOIrandom(long max);
  665.                 //    0~999999までの乱数
  666.             long    max;        //    最大値
  667.  
  668.             例
  669.                 long    ret;
  670.  
  671.                 ret = AOIrandom(250000);
  672.                 //    1~250000の間の乱数を ret に格納します
  673.  
  674.             注意
  675.                 乱数の種に内蔵時計を使用。
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.         ■ AOIbuttonLamp    指定された登録番号のボタンを反転表示します
  683.  
  684.             int AOIbuttonLamp(short sx, short sy, AOIbuttonData *Data);
  685.                 //    0 : 正常終了
  686.             short            sx;        //    現在のウィンドウの開始X座標
  687.             short            sy;        //    現在のウィンドウの開始Y座標
  688.             AOIbuttonData    *Data;    //    ボタン属性
  689.  
  690.             例
  691.                 int    ret;
  692.  
  693.                 ret = AOIbuttonLamp(400, 200, AbD[23]);
  694.                 //    ウィンドウ開始座標(400, 200), ボタンの登録番号 23 の
  695.                     ボタンを反転表示します。
  696.  
  697.             注意
  698.                 AbD は aoi_lib2.h 内で予約済
  699.                 登録番号は 1 から 100 まで。
  700.  
  701.  
  702.  
  703.  
  704.  
  705.         ■ AOIslantingBox    平行四辺形描画
  706.  
  707.             int AOIslantingBox(x0, y0, x1, y1, lx, cl);
  708.                 //    0 : 正常終了            ________  
  709.             short    x0;        //       (x0,y0)/           /
  710.             short    y0;        //            /              /
  711.             short    x1;        //          /←――lx――→/
  712.             short    y1;        //        /              /
  713.             short    lx;        //      /_______/(x1,y1)
  714.             short    cl;        //    描画色
  715.  
  716.             例
  717.                 int    ret;
  718.  
  719.                 ret = AOIslantingBox(320, 200, 100, 50, 30, 14);
  720.                 //    平行四辺形を描画します
  721.  
  722.  
  723.  
  724.  
  725.  
  726.         ■ AOIslantingBoxFull    塗りつぶし平行四辺形描画
  727.  
  728.             int AOIslantingBoxFull(x0, y0, x1, y1, lx, cl);
  729.                 //    0 : 正常終了            ________  
  730.             short    x0;        //       (x0,y0)/           /
  731.             short    y0;        //            /              /
  732.             short    x1;        //          /←――lx――→/
  733.             short    y1;        //        /              /
  734.             short    lx;        //      /_______/(x1,y1)
  735.             short    cl;        //    描画色
  736.  
  737.             例
  738.                 int    ret;
  739.  
  740.                 ret = AOIslantingBoxFull(320, 200, 100, 50, 30, 14);
  741.                 //    塗りつぶし平行四辺形を描画します
  742.  
  743.  
  744.  
  745.  
  746.  
  747.         ■ ank2sjis            半角を含む文字列を全角のみの文字列を変換します
  748.  
  749.             void ank2sjis(char string[], char str[]);
  750.                 //    戻りなし
  751.             char    string[];    //    変換後の文字列
  752.             char    str[];        //    変換前の文字列
  753.  
  754.             例
  755.                 char    string[50];
  756.  
  757.                 ank2sjis(string, "文字列ABCABC");
  758.                 //    文字列"文字列ABCABC"を全角"文字列ABCABC"に変換し
  759.                     string に格納します。
  760.  
  761.             注意
  762.                 変換後の文字列は大きさはノーチェック。
  763.  
  764.  
  765.  
  766.  
  767.  
  768.         ■ sjisToJis        シフトJISをJISに変換します
  769.  
  770.             unsigned int sjisToJis(unsigned int sjis);
  771.                 //    変換結果を返します。
  772.             unsigned int    sjis;    //    変換前 SJISコード
  773.  
  774.             例
  775.                 unsigned int    jis;
  776.  
  777.                 jis = sjisToJis("愛");
  778.                 //    SJISコード"愛" を JISコードに変換して jis に格納します
  779.  
  780.  
  781.  
  782.  
  783.  
  784.         ■ AOIstrFJ2        FJ2フォントによる文字列描画 (新)
  785.  
  786.             void AOIstrFJ2(fp, fs, sx, sy, st, gap);
  787.                 //    戻りなし
  788.             FILE    *fp;        //    FJ2フォントファイルのFILE *fp
  789.             short    fs;            //    FJ2フォントファイルのサイズ(12,24,32,48,60)
  790.             short    sx;            //    開始X座標
  791.             short    sy;            //    開始Y座標
  792.             char    st[];        //    文字列
  793.             short    gap;        //    文字間隔
  794.  
  795.         例
  796.             FILE    *fp;
  797.  
  798.             if ((fp = fopen("Q:\\fj2\\font\\minn60.fnt", "rb")) == NULL) {
  799.                 perror("minn60.fnt のオープンを失敗しました");
  800.             }
  801.             AOIstrFJ2(fp, 60, 320, 200, "文字列ABC", 0);
  802.             //    座標(320, 200)に文字列を MINN60.FNT を使って描画します。
  803.  
  804.         注意
  805.             文字列は全角のみ
  806.  
  807.  
  808.  
  809.  
  810.  
  811.         ■ AOIstring_FJ2    FJ2フォントによる文字列描画 (旧)
  812.  
  813.             void AOIstring_FJ2(fp, fs, sx, sy, st, sc, gap);
  814.                 //    戻りなし
  815.             FILE    *fp;        //    FJ2フォントファイルのFILE *fp
  816.             short    fs;            //    FJ2フォントファイルのサイズ(12,24,32,48,60)
  817.             short    sx;            //    開始X座標
  818.             short    sy;            //    開始Y座標
  819.             char    st[];        //    文字列
  820.             short    sc;            //    描画色
  821.             short    gap;        //    文字間隔
  822.  
  823.         例
  824.             FILE    *fp;
  825.  
  826.             if ((fp = fopen("Q:\\fj2\\font\\minn60.fnt", "rb")) == NULL) {
  827.                 perror("minn60.fnt のオープンを失敗しました");
  828.             }
  829.             AOIstring_FJ2(fp, 60, 320, 200, "文字列ABC", 14, 0);
  830.             //    座標(320, 200)に文字列を MINN60.FNT を使って描画します。
  831.  
  832.         注意
  833.             文字列は全角のみ
  834.             AOIstrFJ2() の旧ヴァージョン
  835.  
  836.  
  837.  
  838.  
  839.  
  840.         ■ AOIstrFJ2Zoom    FJ2フォントによる文字列描画
  841.  
  842.             void AOIstrFJ2Zoom(fp, fs, sx, sy, st, gap, zx, zy);
  843.                 //    戻りなし
  844.             FILE    *fp;        //    FJ2フォントファイルのFILE *fp
  845.             short    fs;            //    FJ2フォントファイルのサイズ(12,24,32,48,60)
  846.             short    sx;            //    開始X座標
  847.             short    sy;            //    開始Y座標
  848.             char    st[];        //    文字列
  849.             short    gap;        //    文字間隔
  850.             short    zx;            //    X方向大きさ
  851.             short    zy;            //    Y方向大きさ
  852.  
  853.         例
  854.             FILE    *fp;
  855.  
  856.             if ((fp = fopen("Q:\\fj2\\font\\minn60.fnt", "rb")) == NULL) {
  857.                 perror("minn60.fnt のオープンを失敗しました");
  858.             }
  859.             AOIstrFJ2Zoom(fp, 60, 320, 200, "文字列ABC", 0, 120, 80);
  860.             //    座標(320, 200)に文字列を MINN60.FNT を使って描画します。
  861.  
  862.         注意
  863.             文字列は全角のみ
  864.  
  865.  
  866.  
  867.  
  868.  
  869.         ■ AOIsystem12Font    12ドットフォントによる文字列描画
  870.  
  871.             void AOIsystem12Font(short x, short y, short c, char *str)
  872.                 //    戻りなし
  873.             short    x;            //    開始X座標
  874.             short    y;            //    開始Y座標
  875.             char    *str;        //    文字列
  876.  
  877.         例
  878.             AOIsystem12Font(320, 200, "文字列ABCABC");
  879.             //    座標(320, 200)に文字列を 12ドットフォント を使って描画します。
  880.  
  881.  
  882.  
  883.  
  884.  
  885.         ■ AOIgetGraph        画像データ画面の読み込み
  886.  
  887.             int AOIgetGraph(char *buf, short x0, short y0, short x1, short y1);
  888.                 //    0:正常終了
  889.             char    *buf;        //    画像保存用バッファ
  890.             short    x0;            //    開始X座標
  891.             short    y0;            //    開始Y座標
  892.             short    x1;            //    終了X座標
  893.             short    y1;            //    終了Y座標
  894.  
  895.         例
  896.             char    dispTmp[(320 / 8) * 240];
  897.  
  898.             AOIgetGraph(dispTmp, 0, 0, 320, 240);
  899.             AOIputGraph(dispTmp, 160, 240, 480, 480);
  900.             //    (0, 0)-(320, 240) の画像を (160, 240)-(480, 480)に複写します。
  901.  
  902.  
  903.  
  904.  
  905.  
  906.         ■ AOIputGraph        画像データ画面の読み込み
  907.  
  908.             int AOIputGraph(char *buf, short x0, short y0, short x1, short y1);
  909.                 //    0:正常終了
  910.             char    *buf;        //    画像保存用バッファ
  911.             short    x0;            //    開始X座標
  912.             short    y0;            //    開始Y座標
  913.             short    x1;            //    終了X座標
  914.             short    y1;            //    終了Y座標
  915.  
  916.         例
  917.             AOIgetGraph() の例 参照
  918.  
  919.  
  920.  
  921.  
  922.  
  923.         ■ AOIgetGraphZoom    画像データ画面の読み込み
  924.  
  925.             int AOIgetGraphZoom(buf, x0, y0, x1, y1, xs, ys);
  926.                 //    0:正常終了
  927.             char    *buf;        //    画像保存用バッファ
  928.             short    x0;            //    開始X座標
  929.             short    y0;            //    開始Y座標
  930.             short    x1;            //    終了X座標
  931.             short    y1;            //    終了Y座標
  932.             short    xs;            //    X方向大きさ
  933.             short    ys;            //    Y方向大きさ
  934.  
  935.         例
  936.             char    dispTmp[(640 / 8) * 480];
  937.  
  938.             AOIgetGraphZoom(dispTmp, 0, 0, 320, 240, 640, 480);
  939.             AOIputGraph(dispTmp, 0, 0, 640, 480);
  940.             //    (0, 0)-(320, 240) の画像を 拡大します。
  941.  
  942.  
  943.  
  944.  
  945.  
  946.         ■ AOIputGraphZoom    画像データ画面の読み込み
  947.  
  948.             int AOIputGraphZoom(buf, x0, y0, x1, y1, xs, ys);
  949.                 //    0:正常終了
  950.             char    *buf;        //    画像保存用バッファ
  951.             short    x0;            //    開始X座標
  952.             short    y0;            //    開始Y座標
  953.             short    x1;            //    終了X座標
  954.             short    y1;            //    終了Y座標
  955.             short    xs;            //    X方向大きさ
  956.             short    ys;            //    Y方向大きさ
  957.  
  958.         例
  959.             char    dispTmp[(320 / 8) * 240];
  960.  
  961.             AOIgetGraph(dispTmp, 0, 0, 320, 240);
  962.             AOIputGraphZoom(dispTmp, 0, 0, 320, 240, 640, 480);
  963.             //    (0, 0)-(320, 240) の画像を 拡大します。
  964.  
  965.  
  966.  
  967.  
  968.  
  969.         ■ AOIwindowMove    ウインドウの移動
  970.  
  971.             void AOIwindowMove(dispTmp, sx, sy, lx, ly);
  972.                 //    戻りなし
  973.             char    *dispTmp;    //    ウィンドウ描画前の画像データ
  974.             short    *sx;        //    現在のウィンドウ開始X座標
  975.             short    *sy;        //    現在のウィンドウ開始Y座標
  976.             short    lx;            //    ウィンドウのX方向大きさ
  977.             short    ly;            //    ウィンドウのY方向大きさ
  978.  
  979.         例
  980.  
  981.  
  982.  
  983.  
  984.  
  985.         ■ AOIwide3            画面モード 3をワイド化します(720 * 490相当)
  986.  
  987.             void AOIwide3(void);
  988.  
  989.         例
  990.             AOIwide3();
  991.             //    画面モード 3をワイド化します
  992.  
  993.  
  994.  
  995.  
  996.  
  997.         ■ AOIwide17        画面モード 17を横方向に 1.2倍拡大します
  998.  
  999.             void AOIwide17(void);
  1000.  
  1001.         例
  1002.             AOIwide17();
  1003.             //    画面モード 17を横方向に 1.2倍拡大します
  1004.  
  1005.  
  1006.  
  1007.  
  1008. */
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.